1. Field of the Invention
The present invention relates to an interrupt load distribution for providing optimal distribution of load within a shared bus type multiprocessor system by determining the load status of individual processors and accordingly scheduling interrupt requests generated at I/O, communication or other devices, and an interrupt load distribution method.
2. Description of the Related Art
Basic methods for controlling distribution of load of interrupt processes in a multiprocessor system include a method in which the operating system notifies the hardware of the priorities of processes being executed by individual processors at synchronized points and causes the processor executing the lowest-priority process to carry out an interrupt process, a method in which an interrupt request is issued to all the processors and the processor that has responded to the request the earliest is made to carry out the interrupt process, a method in which the processor that has received an interrupt request notifies the hardware of the next processor to be interrupted according to the round robin or other logic and thus an interrupt process is carried out sequentially, a method in which a processor in an idle state prompts the hardware to allocate an interrupt request to itself, and a method that combines these methods as necessary.
One prior art for choosing the most appropriate among multiple processors in ensuring optimal load balance within the entire system and making the processor to carry out an interrupt process is disclosed in Japanese Patent Laying-Open (Kokai) No. Heisei 8-329022, entitled "System for Controlling Distribution of I/O Process Load in Multiprocessor System." The art recited in this literature consists of I/O processing processes for performing various I/O processes by being scheduled by a scheduler individually to different operation processors, a request ticket table for designating an I/O processing process to perform a requested I/O process, a return ticket table which is provided for each I/O processing process for registering an I/O action to be processed by that I/O processing process, and an I/O process load distributing part for referring to the request ticket table when an I/O process is requested and registering such I/O process into the return ticket table specified in the request ticket table, thereby achieving well-balanced control of load distribution.
As stated above, in conventional shared bus type multiprocessor systems, greater weight is given to distributing interrupt processes depending on such information as the number of interrupt processes or according to the round robin scheduling or otherwise to distributing interrupt processes among idle-state processors detected, rather than to responding to the running status of applications or the state of the operating system that changes from one moment to the next. These methods have not necessarily been effective in distributing interrupt load since they may fail to achieve good balance between processor load caused by processor binds executed by applications and interrupt load, resulting in a possible decrease in the execution speed of applications.
Also, a scheduling policy for distributing interrupt load that is incorporated in an operating system is fixed, which makes it difficult to change the scheduling policy flexibly and easily according to the running status of applications or the state of the operating system on respective user systems.
Furthermore, the system for controlling distribution of I/O process load disclosed in Japanese Patent Laying-Open (Kokai) No. Heisei 8-329022 uses response times for I/O processes as a basis of considering load balance, leaving the running status of applications or the state of the operating system unconsidered, and therefore an improvement in application throughput or system performance cannot necessarily be expected.